﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
   

    <LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#CCC" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>
    
    <LinearGradientBrush x:Key="ItemBorderBrush" StartPoint="0.5, 0" EndPoint="0.5, 1">
        <GradientStop Color="LightGray" Offset="0" />
        <GradientStop Color="Gray" Offset="1" />
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="ItemAreaBrush" StartPoint="0.5, 0" EndPoint="0.5, 1" Opacity="0.3">
        <GradientStop Color="#EEFFFFFF" Offset="0" />
        <GradientStop Color="#22000000" Offset="1" />
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="HorizontalNormalBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#CCC" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="HorizontalLightBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#AAA" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#BBB" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="0.1"/>
                <GradientStop Color="#EEE" Offset="0.9"/>
                <GradientStop Color="#FFF" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />

    <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />

    <SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />

    <SolidColorBrush x:Key="SelectedBackgroundBrush" Color="#DDD" />

    <!-- Border Brushes -->

    <LinearGradientBrush x:Key="NormalBorderBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#CCC" Offset="0.0"/>
                <GradientStop Color="#444" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="HorizontalNormalBorderBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#CCC" Offset="0.0"/>
                <GradientStop Color="#444" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="DefaultedBorderBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#777" Offset="0.0"/>
                <GradientStop Color="#000" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="PressedBorderBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#444" Offset="0.0"/>
                <GradientStop Color="#888" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />

    <SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />

    <SolidColorBrush x:Key="LightBorderBrush" Color="#AAA" />

    <!-- Miscellaneous Brushes -->
    <SolidColorBrush x:Key="GlyphBrush" Color="#444" />

    <SolidColorBrush x:Key="LightColorBrush" Color="#DDD" />



    <!--Styles-->
    
    <Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}"
       TargetType="ScrollViewer">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ScrollViewer">
                    <Grid Background="{TemplateBinding Background}">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>

                        <DockPanel Margin="{TemplateBinding Padding}">
                            <ScrollViewer DockPanel.Dock="Top"
                                          HorizontalScrollBarVisibility="Hidden"
                                          VerticalScrollBarVisibility="Hidden"
                                          Focusable="false">
                                <GridViewHeaderRowPresenter Margin="2,0,2,0"
                                        Columns="{Binding Path=TemplatedParent.View.Columns, RelativeSource={RelativeSource TemplatedParent}}"
                                        ColumnHeaderContainerStyle="{Binding Path=TemplatedParent.View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource TemplatedParent}}"
                                        ColumnHeaderTemplate="{Binding Path=TemplatedParent.View.ColumnHeaderTemplate, RelativeSource={RelativeSource TemplatedParent}}"
                                        ColumnHeaderTemplateSelector="{Binding Path=TemplatedParent.View.ColumnHeaderTemplateSelector,RelativeSource={RelativeSource TemplatedParent}}"
                                        AllowsColumnReorder="{Binding Path=TemplatedParent.View.AllowsColumnReorder, RelativeSource={RelativeSource TemplatedParent}}"
                                        ColumnHeaderContextMenu="{Binding Path=TemplatedParent.View.ColumnHeaderContextMenu, RelativeSource={RelativeSource TemplatedParent}}"
                                        ColumnHeaderToolTip="{Binding Path=TemplatedParent.View.ColumnHeaderToolTip, RelativeSource={RelativeSource TemplatedParent}}"
                                        SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                            </ScrollViewer>

                            <ScrollContentPresenter   Name="PART_ScrollContentPresenter"
                                                      KeyboardNavigation.DirectionalNavigation="Local"
                                                      CanContentScroll="True" CanHorizontallyScroll="False" 
                                                      CanVerticallyScroll="False"/>
                        </DockPanel>

                        <ScrollBar  Name="PART_HorizontalScrollBar"
                                    Orientation="Horizontal"
                                    Grid.Row="1"
                                    Maximum="{TemplateBinding ScrollableWidth}"
                                    ViewportSize="{TemplateBinding ViewportWidth}"
                                    Value="{TemplateBinding HorizontalOffset}"
                                    Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
                        <ScrollBar  Name="PART_VerticalScrollBar"
                                    Grid.Column="1"
                                    Maximum="{TemplateBinding ScrollableHeight}"
                                    ViewportSize="{TemplateBinding ViewportHeight}"
                                    Value="{TemplateBinding VerticalOffset}"
                                    Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style x:Key="GridViewColumnHeaderGripper" TargetType="Thumb">
        <Setter Property="Width" Value="18"/>
        <Setter Property="Background" Value="{StaticResource NormalBorderBrush}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Thumb}">
                    <Border Padding="{TemplateBinding Padding}" Background="Transparent">
                        <Rectangle HorizontalAlignment="Center" Width="1" Fill="{TemplateBinding Background}"/>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style x:Key="{x:Type GridViewColumnHeader}" TargetType="GridViewColumnHeader">
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="GridViewColumnHeader">
                    <Grid>
                        <Border Name="HeaderBorder"
                                BorderThickness="0,1,1,1"
                                BorderBrush="{StaticResource NormalBorderBrush}"
                                Background="{StaticResource LightBrush}"
                                Padding="2,0,2,0">
                                    <ContentPresenter Name="HeaderContent"
                                                      Margin="0,5,0,5"
                                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                                      RecognizesAccessKey="True"
                                                      SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </Border>
                        <!--<Thumb x:Name="PART_HeaderGripper" HorizontalAlignment="Right" Margin="0,0,-9,0" Style="{StaticResource GridViewColumnHeaderGripper}"/>-->
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter TargetName="HeaderBorder" Property="Background" Value="{StaticResource NormalBrush}"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="true">
                            <Setter TargetName="HeaderBorder" Property="Background" Value="{StaticResource PressedBrush}"/>
                            <Setter TargetName="HeaderContent" Property="Margin" Value="1,1,0,0"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="Role" Value="Floating">
                <Setter Property="Opacity" Value="0.7"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="GridViewColumnHeader">
                            <Canvas Name="PART_FloatingHeaderCanvas">
                                <Rectangle Fill="#60000000" Width="{TemplateBinding ActualWidth}" Height="{TemplateBinding ActualHeight}"/>
                            </Canvas>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>
            <Trigger Property="Role" Value="Padding">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="GridViewColumnHeader">
                            <Border Name="HeaderBorder" BorderThickness="0,1,0,1" BorderBrush="{StaticResource NormalBorderBrush}" Background="{StaticResource LightBrush}"/>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>

    <Style x:Key="{x:Type ListView}" TargetType="ListView">
        <Setter Property="SnapsToDevicePixels" Value="true"/>
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
        <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
        <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListView">
                    <Border Name="Border"
                            BorderThickness="1"
                            BorderBrush="{StaticResource SolidBorderBrush}"
                            Background="{StaticResource WindowBackgroundBrush}">
                        <ScrollViewer Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}">
                            <ItemsPresenter />
                        </ScrollViewer>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsGrouping" Value="true">
                            <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBorderBrush}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <!--<Style x:Key="{x:Type ListViewItem}" TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        <Setter Property="VerticalContentAlignment" Value="Stretch" />
    </Style>


    <DataTemplate x:Key="NumCellTemplate">

        <Border BorderBrush="Gray" BorderThickness="0,0,0,0" Margin="-6,-2,-6,-2" Padding="2,0,2,0">
            <StackPanel Margin="6,2,6,2" HorizontalAlignment="Center" VerticalAlignment="Center">
                <TextBlock Margin="2" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding Path=ChannelNum}"></TextBlock>
            </StackPanel>
        </Border>
        
    </DataTemplate>

    
    <DataTemplate x:Key="DisabledHeader">
        <StackPanel Orientation="Horizontal">
            <Label Content="Disabled" />
            <CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Source={StaticResource Locator}, Path=ChannelConfig.CheckedDisabled}" />
        </StackPanel>
    </DataTemplate>
    
    <DataTemplate x:Key="DisabledCellTemplate">
        <Border BorderBrush="Gray" BorderThickness="1,0,0,0" Margin="-4,-2,-6,-2" Padding="2,0,2,0">
            <StackPanel Margin="6,2,6,2" HorizontalAlignment="Center" VerticalAlignment="Center">
                <CheckBox ToolTip="Disable Channel"  HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Path=ChannelIsDissabled}" />
            </StackPanel>
        </Border>
    </DataTemplate>

    <DataTemplate x:Key="NameCellTemplate">
        <Border BorderBrush="Gray" BorderThickness="1,0,0,0" Margin="-4,-2,-6,-2" Padding="2,0,2,0">
            <StackPanel Margin="6,2,6,2">
                <TextBox HorizontalAlignment="Stretch" Margin="5" VerticalAlignment="Stretch" Text="{Binding Path=Name}" />
            </StackPanel>
        </Border>
    </DataTemplate>

    <DataTemplate x:Key="TypeCellTemplate">
        <Border BorderBrush="Gray" BorderThickness="1,0,0,0" Margin="-4,-2,-6,-2" Padding="2,0,2,0">
            <StackPanel Margin="6,2,6,2"  HorizontalAlignment="Stretch" VerticalAlignment="Center">
                <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"  Text="{Binding Path=Type}"></TextBlock>
            </StackPanel>
        </Border>
    </DataTemplate>

    <DataTemplate x:Key="InbandHeader">
        <StackPanel Orientation="Horizontal">
            <Label Content="Inband" />
            <CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Source={StaticResource Locator}, Path=ChannelConfig.CheckedInband}" />
        </StackPanel>
    </DataTemplate>

    <DataTemplate x:Key="InbandCellTemplate">
        <Border BorderBrush="Gray" BorderThickness="1,0,1,0" Margin="-4,-2,-9,-2" Padding="2,0,2,0">
            <StackPanel Margin="6,2,6,2" HorizontalAlignment="Stretch" VerticalAlignment="Center">
                <CheckBox ToolTip="Disable Inband" HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Path=disableInband}" />
            </StackPanel>
        </Border>
    </DataTemplate>-->


    <DataTemplate x:Key="DefaultHeader">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding }"></TextBlock>
        </StackPanel>
    </DataTemplate>
    
    <DataTemplate x:Key="InbandHeader">
        <StackPanel Orientation="Horizontal">
            <Label HorizontalAlignment="Center" VerticalAlignment="Center" Content="Inband" />
            <CheckBox Margin="4,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Source={StaticResource Locator}, Path=ChannelConfig.CheckedInband}" />
        </StackPanel>
    </DataTemplate>
    
    <DataTemplate x:Key="DisabledHeader">
        <StackPanel Orientation="Horizontal">
            <Label HorizontalAlignment="Center" VerticalAlignment="Center" Content="Disabled" />
            <CheckBox Margin="4,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Source={StaticResource Locator}, Path=ChannelConfig.CheckedDisabled}" />
        </StackPanel>
    </DataTemplate>

    <Style x:Key="{x:Type ListViewItem}" TargetType="ListViewItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListViewItem">
                    <Grid Margin="2,2,2,2">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="45"/>
                            <ColumnDefinition Width="80"/>
                            <ColumnDefinition Width="180"/>
                            <ColumnDefinition Width="80"/>
                            <ColumnDefinition Width="80"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="30"/>
                        </Grid.RowDefinitions>
                        <Border Grid.ColumnSpan="5" 
                                Background="{StaticResource LightBrush}"
                                BorderBrush="{StaticResource ItemBorderBrush}"
                                Margin="1"
                                BorderThickness="0.6" 
                                CornerRadius="8"              
                                Padding="6"     
                                SnapsToDevicePixels="True"/>
                        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="0" Name="Numtxt" Text="{Binding Path=ChannelNum}"></TextBlock>
                        <CheckBox ToolTip="Disable Channel"  HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1" Name="chkBoxChannelDissabled"  IsChecked="{Binding Path=ChannelIsDissabled}" />
                        <TextBox Height="22" HorizontalAlignment="Stretch" Margin="5"  VerticalAlignment="Center" Grid.Column="2" Name="txtName" Text="{Binding Path=Name}" />
                        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="3" Name="Typetxt" Text="{Binding Path=Type}"></TextBlock>
                        <CheckBox ToolTip="Disable Inband" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="4" Name="chkBoxInbandDissabled" IsChecked="{Binding Path=disableInband}" />
                    </Grid>

                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <DataTemplate x:Key="DragTemplate">
        <Border BorderBrush="Gray" BorderThickness="1" Background="BlanchedAlmond">
            <StackPanel HorizontalAlignment="Left">
                <TextBlock Margin="10" Text="{Binding Path=Name}" TextAlignment="Center" FontWeight="Bold" />
            </StackPanel>
        </Border>
    </DataTemplate>

</ResourceDictionary>